home *** CD-ROM | disk | FTP | other *** search
/ PC Gamer (Italian) 30 / PC Gamer IT CD 30 1-2.iso / MOTS / GAMEDATA / RESOURCE / JKMRES.GOO / cog_00_elev_switch.cog < prev    next >
Text File  |  1998-02-25  |  3KB  |  83 lines

  1. # Jedi Knight Cog Script
  2. #
  3. # 00_elev_switch.cog
  4. #
  5. # This elevator will go up to frame one, sleep, then come back down to frame 0 when
  6. # entered from the bottom.  When entered from the top, it should stay at the bottom.
  7. # The button surface is a call switch you can put at the top to call the thing up there.
  8. # Elevator will react to "blocked" message.
  9. #
  10. # [DS/RD/IS/JS]
  11. # Modified 11/13/96 DS  (added third adjoin)
  12. # Modified 12/14/96 by RKD (changed to new COG format)
  13. # Modified 4/6/97 by IS (Fixed bug with repeatedly hitting switch)
  14. # Modified 4/29/97 by RKD (changed to work with 00_sendmessage.cog -- see commented out line below)
  15. # Modified 4/30/97 by IS (Changed from sleep to timer)
  16. # Modified 8/19/97 by JS (added blocked message)
  17. # Modified 9/1/97 by SXC (took blocked message out)
  18. #
  19. # (C) 1997 LucasArts Entertainment Co. All Rights Reserved
  20. # ========================================================================================
  21.  
  22. symbols
  23.  
  24. message  crossed
  25. message  activate
  26. message  arrived
  27. message  timer
  28.  
  29. surface  lower_adjoin0  linkid=1
  30. surface  lower_adjoin1  linkid=1
  31. surface  lower_adjoin2  linkid=1
  32. surface  button         linkid=1
  33.  
  34. thing    elevator       linkid=2
  35.  
  36. flex     start_wait=0.25   desc=pause_before_moving_up
  37. flex     sleeptime=2.0
  38. flex     speed=4.0
  39. sound    wav0=Activate02.wav
  40.  
  41. end
  42.  
  43. # ========================================================================================
  44.  
  45. code
  46. crossed:                // If player crosses adjoin(s)
  47.    Sleep(start_wait);            // pause before moving up
  48.    // fall through
  49.  
  50. # ........................................................................................
  51.  
  52. activate:                 // If player presses button
  53.    if (GetSenderId() != 1) return;  // message came from elevator
  54.    if (GetWallCel(button) == 1) return;
  55.  
  56.    SetWallCel(button, 1);
  57.    PlaySoundPos(wav0, SurfaceCenter(button), 0.6, -1, -1, 0);
  58.  
  59.    MoveToFrame(elevator, 1, speed);
  60.    return;
  61.  
  62. # ........................................................................................
  63.  
  64. arrived:
  65.    if (GetCurFrame(elevator) == 0) {
  66.       SetWallCel(button, 0);
  67.       PlaySoundPos(wav0, SurfaceCenter(button), 0.6, -1, -1, 0);
  68.    } else {
  69.       // Set sleep time at top
  70.       SetTimer(sleeptime);
  71.    }
  72.    return;
  73.  
  74. # ........................................................................................
  75.  
  76. timer:
  77.    // Send elevator down
  78.    MoveToFrame(elevator, 0, speed);
  79.    return;
  80.  
  81. end
  82.  
  83.